MEMORY RELATED OPERATORS:
copyright (C) 1983 by E. E. Bergmann
definitions in alphabetical(ASCII) order
:
::
*********************************************************
*							*
* PISTOL-Portably Implemented Stack Oriented Language	*
*			Version 2.0			*
* (C) 1983 by	Ernest E. Bergmann			*
*		Physics, Building #16			*
*		Lehigh Univerisity			*
*		Bethlehem, Pa. 18015			*
*							*
* Permission is hereby granted for all reproduction and *
* distribution of this material provided this notice is *
* included.						*
*							*
*********************************************************
:
::
1+W!	ADDR -->
	Increments the word in RAM at ADDR by one.

?	ADDR -->
	Prints the word value located in RAM at ADDR;
	equivalent to:   W@  =

C!	stores in the string area addressed by the top of
	stack the character whose ASCII value is next to
	the top.

C@	fetches the ASCII value of the character in the
	string area addressed by the top of stack.

COMPBUF	System constant that points to the compile buffer in
	RAM.

EDITBUF	System constant that points in the strings area to the
	start of the editbuffer.  It also is the upper limit of
	the input linebuffer, see LINEBUF.

LINEBUF	System constant that points in the strings area to the
	start of the input line buffer that is filled in the
	process of compiling a line of PISTOL.  It is filled
	by GETLINE.

OFF	sets location addressed by top of stack to FALSE.

ON	sets location addressed by top of stack to TRUE.

RAMMAX	System constant that points to the end of accessible
	RAM.

RAMMIN	System constant that points to the start of accessible
	RAM; the area between RAMMIN and USER contains system
	constants that can be read from but not written to.

READ-PROTECT
	Boolean system constant.  If it is true, then operators
	that access memory for reading are checked for legal
	ranges.  For example, addresses must be in the range,
	[RAMMIN..RAMMAX] for W@ and [STRINGSMIN..STRINGSMAX]
	for C@ .  If the address during a read is outside these
	limits, an error "READ VIOLATION" is generated and the
	program does an ABORT.

STRINGSMAX	System constant that points to the end of the
	strings area.

STRINGSMIN	System constant that points to the start of the
	strings area.

TRANS	converts the logical address to the "actual address".
	It is equivalent to mutiplying by the wordsize, W , and
	adding the offset, USER ; its definition is, in effect:
	W * USER +

TRANS@	Equivalent to: TRANS W@

USER	System constant that points to near the bottom of RAM.
	It points to the lowest system variable location and
	marks the top of the area where the system constants
	are in RAM; these constants can be read with W@, but
	not changed by W!

USER+	equivalent to: USER + 

W	System constant that gives the word size in address
	units; see, for example, W+ , below.

W!	Stores at the word location addressed by the top of
	stack the value next to top.

W*	TOS --> W*TOS
	Multiplies the top of stack by the wordsize, W ;
	Equivalent to:  W *

W+	TOS --> W+TOS
	Increments the top of stack by the wordsize of the
	implementation; equivalent to:   W +

W+W!	ADDR -->
	Increments the word in RAM at ADDR by the wordsize, W.

W<-	equivalent to " SWAP W! "

W@	Fetches the contents of the word location addressed
	by the top of stack (used extensively with words
	defined by VARIABLE).

WRITE-PROTECT
	Boolean system constant.  If it is true, then operators
	that access memory for writing are checked for legal
	ranges.  For example, addresses must be in the range,
	[USER..RAMMAX] for W! and [STRINGSMIN..STRINGSMAX]
	for C! .  If the address during a write is outside
	these limits, an error "WRITE VIOLATION" is generated
	and the	program does an ABORT.

:
